#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//void GetMemory(char** p, int num)
//{
//	*p = (char*)malloc(num);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	if(str!=NULL)
//	{
//		strcpy(str, "hello");
//		printf(str);
//	}
//}

//void GetMemory(char** p, int num)
//{
//	char* ptr = (char*)malloc(num);
//	if (NULL != ptr)
//	{
//		*p = ptr;
//	}
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(str, 100);
//	strcpy(str, "hello");
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}
//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//void GetMemory(char** p, int num)
//{
//	char* ptr = (char*)malloc(num);
//	if (NULL != ptr)
//	{
//		*p = ptr;
//	}
//}
//
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	strcpy(str, "hello");
//	printf(str);
//}
//
//int main()
//{
//	Test();
//	return 0;
//}

//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//void Test(void)
//{
//	char* str = (char*)malloc(100);
//	strcpy(str, "hello");
//	free(str);
//	if (str != NULL)
//	{
//		strcpy(str, "world");
//		printf(str);
//	}
//}
//int main()
//{
//	Test();
//	return 0;
//}

//typedef struct S
//{
//	int i;
//	int a[0];
//}s;
//int main()
//{
//	printf("%d\n", sizeof(s));
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//int main()
//{
//	int i = 0;
//	s* p = (s*)malloc(sizeof(s) + 100 * sizeof(int));
//	p->i = 100;
//	for (i = 0; i < 100; i++)
//	{
//		p->a[i] = i;
//	}
//	free(p);
//	return 0;
//}


//int main()
//{
//	int arr[3][5] = { 0 };
//	int* p = malloc(3 * 5 * sizeof(int));
//	if (NULL != p)
//	{
//		arr[3][5] = p;
//	}
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 5; j++)
//		{
//			arr[i][j] = j + 1;
//		}
//	}
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 5; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}

